package cn.school.classManage.service;

import cn.school.classManage.vo.ClassTeacherRelationVo;
import cn.school.classManage.vo.SchoolClassVO;
import cn.school.common.api.CommonPage;
import cn.school.common.api.CommonResult;
import cn.school.notice.entity.FamilyNotice;
import cn.school.sys.entity.SysUser;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface SchoolClassService extends IService<SchoolClassVO> {
    /**
     * 分页查询班级信息
     * @param vo
     * @return
     */
    IPage<SchoolClassVO> findSchoolClassPageList(SchoolClassVO vo);

    /**
     * 新增或修改班级信息
     * @param vo
     * @return
     */
    int addOrUpdateSchoolClassInfo(SchoolClassVO vo);



    /**
     * 删除班级信息
     * @param id
     * @return
     */
    int deleteSchoolClassInfo(Long id);

    /**
     * 查询所有班级名称信息
     * @return
     */
    List<SchoolClassVO> findAllSchoolClass();






    List<SchoolClassVO> findClassByTeacher();

    /**
     * 批量修改班级状态
     * @param ids
     * @return
     */
    int batchUpdateClassStatus(List<SchoolClassVO> ids);

    /**
     * 根據班级id查找学生门禁记录
     * @author alex
     * @param: classId
     * @date 2023/3/24 9:31
     * @return
     */
	CommonPage<FamilyNotice> findAcsRecordByClassId(SchoolClassVO classVO);

    SysUser queryByStudentName(Integer className);

    SchoolClassVO findClassInfoByClassId(Long classId);

    /**
     * 查询单个班级信息
     * @param classVO
     * @return
     */
    List<SchoolClassVO> findClassInfo(SchoolClassVO classVO);
	
    /**
     * 配置教员信息
     *
     * @author alex
     * @param: params
     * @date 2023/8/2 14:38
     * @return
     */
	int classTeacherConfig(List<ClassTeacherRelationVo> vo);
	
	CommonResult<String> importClassInfoExcel(InputStream inputStream) throws IOException;
}
